package org.dromara.creditcard.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;

import java.io.Serial;

/**
 * 信用卡列对象 credit_card
 *
 * @author Mr.Zhou
 * @date 2023-11-29
 */
@Data
@TableName("credit_card")
public class CreditCard implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     *
     */
    @TableId(value = "id",type = IdType.AUTO)
    private Integer id;

    /**
     *  租户编号
     */
    private String tenantId;

    /**
     *  区域代理id
     */
    private Integer agentId;

    /**
     * 持卡人表id
     */
    private Integer holderId;

    /**
     * 信用卡号
     */
    private String cardNum;

    /**
     * 账号拆分模板id
     */
    private Integer billTemplateId;

    /**
     * 账单日
     */
    private Integer statementDay;

    /**
     * 还款日
     */
    private Integer repaymentDay;

    /**
     * 卡总额度
     */
    private BigDecimal totalLimit;

    /**
     * 剩余额度
     */
    private BigDecimal leftLimit;

    /**
     * 剩余额度占有比例
     */
    private BigDecimal leftRate;

    /**
     *  临时额度
     */
    private BigDecimal tempLimit;

    /**
     * 卡片状态 0  - 待审核  1 - 审核成功（正常可用） 3 - 信用卡审核失败  4 - 卡片已逾期  5 - 已降额  6 - 已退回给持卡人
     */
    private Integer state;

    @JsonFormat(pattern="yyyy-MM-dd", timezone = "GMT+8")
    /**
     * 卡片有效期
     */
    private Date periodValidity;

    /**
     * 背面CVV编号
     */
    private String cardCvv;

    /**
     * 持卡人姓名
     */
    private String realName;

    /**
     * 绑定的pos机商户id
     */
    private Integer posMerId;
    /**
     * 绑定的pos机商户名称
     */
    private String posMerName;

    /**
     * 绑定的扫码商户名称
     */
    private Integer qrMerId;
    /**
     * 绑定的扫码商户名称
     */
    private String qrMerName;

    /**
     * pos机的执行利率
     */
    private BigDecimal posRate;

    /**
     * 扫码支付的执行利率
     */
    private BigDecimal qrRate;

    /**
     * pos机终端号
     */
    private String posNum;

    /**
     * 绑定手机号
     */
    private String phoneNum;

    /**
     * 银行名称
     */
    private String bankName;

    /**
     * 联行号
     */
    private String bankCode;

    /**
     * 绑定微信号
     */
    private String wxNo;

    /**
     * 绑定微信昵称
     */
    private String wxNiceName;

    /**
     * 业务人员id
     */
    private Integer businessUserId;

    /**
     * 添加时间
     */
    private Date createTime;


    /**
     * 账单模式  0 - 先进后出   1 - 先出后进
     */
    @TableField(exist = false)
    private Integer billType;

}
